A demand for higher performance of storage systems used to store data is now increasing more and more along with the popularization of information processing using a computer. For example, a demand for higher speed of processing for reading and writing a large amount of data, that is, a demand for high performance is increasing. Further, a demand for preventing disappearance of accumulated data even when a failure occurs in a part of hardware constituting a storage system, that is, a demand for high reliability is increasing.
As a storage system which meets such various demands for high performance and high reliability, a distributed storage system is known. In the distributed storage system, a plurality of data blocks are distributed and allocated to a plurality of storage nodes connected via a network. Also, the data blocks having the same content are often allocated redundantly to a plurality of storage nodes. That is, load distribution and data redundancy are performed using a plurality of storage nodes. This makes it possible to improve the response performance and reliability of the storage system.
During an operation of the distributed storage system, a data allocation status constantly changes with the addition or deletion of data. Here, when data that frequently receives access requests is collectively allocated to a specific storage node, load distribution becomes insufficient and as a result, the response performance is deteriorated. Accordingly, for maintaining high response performance of the distributed storage system, the data allocation needs to be managed in consideration of a load of individual storage node during the operation.
Specifically, the following methods are known as a management method for maintaining high response performance of the distributed storage system. A first method is a method for dynamically determining a storage node as an access destination when receiving an access request. Specifically, when the data that receives an access request is allocated redundantly to a plurality of storage nodes, the distributed storage system determines as an access destination a storage node having the minimum load at the access request (e.g., Japanese Laid-open Patent publication Nos. 63-56873 and 11-161555). A second method is a method for automatically moving data itself such that the amount of access requests is equal as much as possible between the storage nodes (e.g., Japanese Laid-open Patent publication No. 2005-276017). These methods make it possible to prevent loads from concentrating on a specific storage node.
However, technologies described in Japanese Laid-open Patent publication Nos. 63-56873, 11-161555, and 2005-276017 have the following problems. In the dynamic load distribution technologies described in Japanese Laid-open Patent publication Nos. 63-56873 and 11-161555, processing for always determining an access destination at each access request is performed between an access request source and a storage node. Therefore, a mechanism for realizing data allocation management becomes complicated, and at the same time, a response delays by the processing for determining the access destination. In the data automatic movement technology disclosed in Japanese Laid-open Patent publication No. 2005-276017, data movement itself applies a load to the storage node. Therefore, a response delays during the data movement. When data is repeatedly moved, a burden on a hardware such as a disk device increases, and as a result, failures are caused.